package com.zhou.domain.Dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 说明：
 *
 * @author 钟波dellNotebook
 * @since 2025年04月03日 星期四 10:05:21
 */
@Data
@ApiModel("航迹中间数据封装")
public class FlightPathDto {
    /*
    {
      "type": "B744",
      "r": "N919CA",
      "trace": [
        11192.88,
        40.656246,
        -73.776986,
        "ground",
        8.8,
        120.9,
        0,
        0,
        null,
        "adsb_icao",
        null,
        null,
        null,
        null
      ],
      "icao": "acb84d",
      "dbFlags": "8",
      "desc": "BOEING 747-400",
      "timestamp": 1743645145199
    }
     */

    @ApiModelProperty("UUID 主键")
    private String id;
    // icao
    @JsonProperty("type")
    @ApiModelProperty("关联飞机ICAO码")
    private String icao_code;
    // timestamp + trace[0]
    @JsonProperty("trace[0]")
    @ApiModelProperty("时间戳（精确到毫秒）")
    private Date timestamp;
    // trace[1]
    @JsonProperty("trace[1]")
    @ApiModelProperty("纬度（WGS84坐标系）")
    private Double latitude;
    // trace[2]
    @JsonProperty("trace[2]")
    @ApiModelProperty("经度（WGS84坐标系）")
    private Double longitude;
    // trace[3] 如果 为ground 则设置高度为0
    @JsonProperty("trace[3]")
    @ApiModelProperty("海拔高度（米）")
    private Double altitude;
    // trace[4]
    @JsonProperty("trace[4]")
    @ApiModelProperty("地速（公里/小时）")
    private Double speed;
    // trace[5]
    @JsonProperty("trace[5]")
    @ApiModelProperty("航向角（0-359度）")
    private Double heading;
    // trace[8] 里面的 type 字段
    @JsonProperty("trace[8]")
    @ApiModelProperty("数据源类型（枚举值：ADS_B, RADAR, MLAT）")
    private String source_type;

}
